import { defineStore } from 'pinia';
// 这里的 index 似乎没有作用，可以更换成任意名称。
export const useCartStore = defineStore('inedx', {
    state: () => {
        return { 
			userInfo: {},
			token: null,
			goods: [],
			code: '',
			address: null,
		};
    },
	
    actions: {
		// 设置token
		setToken(data) {
			this.token = data;
		},
		
		// 设置地址
		setAddress(data) {
			this.address = data;
		},
		
		// 用户信息
		setUserInfo(data) {
			this.userInfo = data;
		},
		
		setCode(data) {
			this.code = data;
		},
		
		// 清空数据
		clear() {
			this.goods = [];
		},
		
		// 添加商品
        addGoods(data) {
			let existingItem = this.goods.find((cartItem) => cartItem.id === data.id);
			if (existingItem) {
				this.goods.map(item => {
					if (item.id == existingItem.id) {
						item.total ++;
						return;
					};
				});
			} else {
				this.goods.push(data);
			}
        },
		
		// 减少商品
		cancelGoods(data) {
			this.goods.map((item, index) => {
				if (item.id == data?.id) {
					if (item.total > 1) {
						item.total --;
					} else {
						this.goods.splice(index, 1);  // 删除
						console.log(item.total, '999')
					}
				}
			})
		},
		
		// 编辑商品
		editGoods(data, type) {
			this.goods.map((item, index) => {
				if (item.id == data?.id) {
					if (type == 2) {
						if (item.total !== 1) {
							item.total --
						} else {
							this.goods.splice(index, 1);  // 删除
						}
					} else {
						item.total ++
					}
					return
				}
			})
		}
    },
	
	unistorage: true
});